package com.aloha.springframework.beans.factory;

import com.aloha.springframework.beans.BeansException;

import java.util.Map;

/**
 * @author DaiZhiHeng
 * @description 就是一个可以根据某些信息获取容器中所有的BeanName或者所有Bean的一个工厂
 * @date 2023/7/1 20:42
 */
public interface ListableBeanFactory extends BeanFactory {

    /**
     * 根据所给的Class，获取所有类型为Class的 Bean
     */
    <T> Map<String, T> getBeansOfType(Class<T> type) throws BeansException;

    /**
     * 获取容器中所有的 BeanName
     */
    String[] getBeanDefinitionNames();
}
